package br.ufu.wcm.controller;

import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.ufu.wcm.dao.UsuarioDao;
import br.ufu.wcm.interfaces.Public;
import br.ufu.wcm.model.Usuario;
import br.ufu.wcm.model.UsuarioSession;

@Resource
public class LoginController {
	
	private Result result;
	private UsuarioDao usuarioDao;
	private UsuarioSession usuarioSession;
	
	public LoginController(Result result, UsuarioDao usuarioDao, UsuarioSession usuarioSession) {
		this.result = result;
		this.usuarioDao = usuarioDao;
		this.usuarioSession = usuarioSession;
	}
	
	@Public
	@Path("/")
    public void login() {
    }
	
	@Public
	@Post("/login/autenticar")
	public void autenticar(Usuario usuario) {
		
		if(!usuarioSession.isLogged()){
			Usuario usuarioBanco = usuarioDao.buscarPorNome(usuario);
			
			if (usuarioBanco != null && usuario.getHash().equals(usuarioBanco.getHash())) {
				usuarioSession.setUsuario(usuarioBanco);
				result.redirectTo(IndexController.class).index();
			} else {
				result.include("error", true);
				result.redirectTo(LoginController.class).login();
			}
				
		} else {
			result.redirectTo(IndexController.class).index();
		}
		
		
	}
	
	@Public
	public void logout(){
		//TODO implementar
	}
	
}
